package com.bort.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bort.system.info.LoginResult;
import com.bort.system.model.Menu;
import com.bort.system.model.User;
import com.bort.system.model.vo.Admin;
import com.bort.system.model.vo.VipUser;
import com.bort.system.utils.Result;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface UserService extends IService<User> {

    LoginResult login(String username, String password);

    List<Menu> selectPromisedMenus(Integer id);

    void selectByPage(Page<Admin> pager, Map<String,Object> map);

    void updateUser(User user);

    void addUser(User user);

    void updateAdmin(Admin admin);

    void insetAdmin(Admin admin);

    void deleteUser(Integer id);

    User findByUserName(String username);

    List<Menu> getUserAuthorizedMenus(Integer id);

    Result upload(MultipartFile file);

    void selectVipUsers(Page<VipUser> pager, Map<String, Object> map);

    Result updatePassword(Map<String, Object> map);

    Result loadUser(Integer userType);
}
